import { POST, GET, PACTH, DELETE } from '@/utils/request'

/** 避免 hooks 写法下的命名冲突 */
export class FileService {
  /** 分页查询文件列表 */
  static page(data: FileEntity.SearchParams) {
    return GET('/file/page', { params: data })
  }

  /** 文件上传接口 */
  static async upload(data: FormData) {
    const digest = data.get('digest') as string
    const res = await this.getFileByDigest(digest)
    if (res.success && res.data) {
      return Promise.resolve(res)
    }
    return POST('/file/upload', data)
  }

  /** 更新文件 */
  static update(id: string, data: FormData) {
    return PACTH('/file/' + id, data)
  }

  /** 删除文件 */
  static remove(id: string) {
    return DELETE('/file/' + id)
  }

  /** 根据md5值查询文件 */
  static getFileByDigest(digest: string) {
    return GET('/file/digest/' + digest)
  }
}
